/**
 * @file ai.js
 * @description AI模块相关的API请求
 * @created 2025-04-17
 */

import request from '@/utils/request'

// 基础路径
const baseUrl = '/api/ai'

/**
 * 获取教师列表
 * @param {Object} params - 查询参数
 * @param {string} params.college - 学院ID
 * @param {string} params.title - 职称
 * @param {string} params.keyword - 搜索关键词
 * @returns {Promise} 返回教师列表数据
 */
export function getTeachers(params) {
  return request({
    url: `${baseUrl}/teachers`,
    method: 'get',
    params
  })
}

/**
 * 获取教师教学风格分析
 * @param {string} teacherId - 教师ID
 * @returns {Promise} 返回教师教学风格分析数据
 */
export function getTeachingStyleAnalysis(teacherId) {
  return request({
    url: `${baseUrl}/teaching-style/${teacherId}`,
    method: 'get'
  })
}

/**
 * 获取教师教学效能分析
 * @param {string} teacherId - 教师ID
 * @returns {Promise} 返回教师教学效能分析数据
 */
export function getTeachingEffectiveness(teacherId) {
  return request({
    url: `${baseUrl}/teaching-effectiveness/${teacherId}`,
    method: 'get'
  })
}

/**
 * 获取教师培训推荐
 * @param {string} teacherId - 教师ID
 * @returns {Promise} 返回教师培训推荐数据
 */
export function getTrainingRecommendations(teacherId) {
  return request({
    url: `${baseUrl}/training-recommendations/${teacherId}`,
    method: 'get'
  })
}

/**
 * 获取教师协作推荐
 * @param {string} teacherId - 教师ID
 * @returns {Promise} 返回教师协作推荐数据
 */
export function getCollaborationRecommendations(teacherId) {
  return request({
    url: `${baseUrl}/collaboration-recommendations/${teacherId}`,
    method: 'get'
  })
}

/**
 * 获取AI教学资源推荐
 * @param {Object} params - 查询参数
 * @param {string} params.teacherId - 教师ID
 * @param {string} params.category - 资源类别
 * @returns {Promise} 返回教学资源推荐
 */
export function getResourceRecommendations(params) {
  return request({
    url: `${baseUrl}/resource-recommendations`,
    method: 'get',
    params
  })
}

/**
 * 报名培训课程
 * @param {Object} data - 报名数据
 * @param {string} data.teacherId - 教师ID
 * @param {string} data.trainingId - 培训ID
 * @returns {Promise} 返回报名结果
 */
export function enrollTraining(data) {
  return request({
    url: `${baseUrl}/enroll-training`,
    method: 'post',
    data
  })
}

/**
 * 发起教师协作请求
 * @param {Object} data - 协作请求数据
 * @param {string} data.teacherId - 发起教师ID
 * @param {string} data.targetTeacherId - 目标教师ID
 * @param {string} data.message - 协作消息
 * @returns {Promise} 返回请求结果
 */
export function initiateCollaboration(data) {
  return request({
    url: `${baseUrl}/initiate-collaboration`,
    method: 'post',
    data
  })
}

/**
 * 获取教师详细信息
 * @param {string} teacherId - 教师ID
 * @returns {Promise} 返回教师详细信息
 */
export function getTeacherDetail(teacherId) {
  return request({
    url: `${baseUrl}/teacher-detail/${teacherId}`,
    method: 'get'
  })
}

/**
 * @file ai.js
 * @description 管理员AI对话相关API
 * @created 2024-06-26
 */

/**
 * 管理员AI对话
 * @param {Object} data - { query, file_info, conversation_id, user_id }
 * @returns {Promise}
 */
export function adminAiChat(data) {
  return request.post('/api/admin/ai/chat/', data)
}

/**
 * Dify文档分析
 * @param {Object} data - 包含文件和参数信息
 * @returns {Promise}
 */
export function difyAnalyzeDocument(data) {
  return request.post('/api/admin/ai/analyze-document/', data)
}

/**
 * 获取资源AI评估
 * @param {number} resourceId - 资源ID
 * @returns {Promise}
 */
export function getResourceAiEvaluation(resourceId) {
  return request.get(`/api/admin/ai/resource-evaluation/${resourceId}/`)
}

/**
 * 获取资源AI推荐
 * @param {Object} params - 推荐参数
 * @returns {Promise}
 */
export function getAiRecommendations(params) {
  return request.get('/api/admin/ai/recommendations/', { params })
}

/**
 * 将资源发送到Dify知识库
 * @param {number} resourceId - 资源ID
 * @returns {Promise}
 */
export function sendResourceToDify(resourceId) {
  return request.post(`/api/admin/ai/send-to-dify/${resourceId}/`)
}

/**
 * 从Dify获取文件分析结果
 * @param {number} difyDocId - Dify文档ID
 * @returns {Promise}
 */
export function getDifyAnalysisResult(difyDocId) {
  return request.get(`/api/admin/ai/dify-analysis/${difyDocId}/`)
}

/**
 * 资源格式转换与优化
 * @param {Object} data - 转换参数
 * @returns {Promise}
 */
export function optimizeResourceFormat(data) {
  return request.post('/api/admin/ai/optimize-format/', data)
}

/**
 * 获取资源专业化分析结果
 * @param {number} resourceId - 资源ID
 * @returns {Promise}
 */
export function getResourceProfessionalAnalysis(resourceId) {
  return request.get(`/api/admin/ai/professional-analysis/${resourceId}/`)
}

/**
 * 提交资源专业化分析请求
 * @param {Object} data - 分析参数
 * @param {number} data.resourceId - 资源ID
 * @param {Array} data.options - 分析选项
 * @returns {Promise}
 */
export function submitResourceAnalysis(data) {
  return request.post('/api/admin/ai/analyze-resource/', data)
} 